package com.lancoo.ccas53.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lancoo.ccas53.entity.Monitor;
import com.lancoo.ccas53.entity.MonitorRecord;
import com.lancoo.ccas53.pojo.dto.ResultDto;

import java.util.List;

/**
 * <p>
 * 合理性监测表 服务类
 * </p>
 *
 * @author quin.song
 * @since 2024-05-20
 */
public interface MonitorService extends IService<Monitor> {
    /**
     * 获取检测记录
     *
     * @param taskId        任务id
     * @param baseCollegeId 基础学院id
     * @param pageSize      页容
     * @param currentPage   页码
     * @return ResultDto<Monitor>
     */
    ResultDto<Monitor> getMonitor(Integer taskId, String baseCollegeId, Integer pageSize, Integer currentPage);

    /**
     * 开始检测
     *
     * @param taskId        任务id
     * @param baseCollegeId 基础学院id
     * @param param         入参实体类
     * @return MonitorRecord
     */
    List<MonitorRecord> addMonitor(Integer taskId, String baseCollegeId, String userId, String userName, Monitor param);

    void checkWeekNum(Integer maxWeekNum, Integer taskId, Integer monitorId);

    void checkConnectSection(Integer maxConnectSection, Integer taskId, Integer monitorId);

    void checkTeacherNum(Integer maxWeekNum, Integer taskId, Integer monitorId);

    void checkAssistantNum(Integer maxWeekNum, Integer taskId, Integer monitorId);

    void checkTeacherWeekNum(Integer maxWeekNum, Integer taskId, Integer monitorId);

    void checkStudentNum(Integer maxWeekNum, Integer taskId, Integer monitorId);

    /**
     * 查看检测结果
     *
     * @param taskId    任务id
     * @param monitorId 检测id
     * @return MonitorRecord
     */
    List<MonitorRecord> getMonitorRecord(Integer taskId, Integer monitorId);

}
